#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
using namespace std;
#include <vector>

vector<char> mul(vector<char> str)
{
	vector<char> tmp;
	int carry = 0;
	for (int i = str.size() - 1; i >= 0; i--)
	{
		int sum = 0;
		sum = ((str[i] - '0')) * 2 + carry;
		tmp.push_back(((sum % 10) + '0'));
		carry = sum / 10;
	}
	if (carry)
	{
		tmp.push_back('1');
	}
	reverse(tmp.begin(), tmp.end());

	return tmp;
}

int main()
{
	//vector<char> num;
	//num.push_back('2');
	//for (int i = 0; i < 2022; i++)
	//{
	//	num = mul(num);
	//}
	//for (int i = 0; i < num.size(); i++)
	//{
	//	cout << num[i];
	//}
	
	//公式：a * b = c; c % MOD ===> (a % MOD) * (b % MOD) % MOD; 
	int ret = 1;
	for (int i = 1; i <= 2023; i++)
	{
		ret = ret * 2 % 1000;
	}
	cout << ret << endl;
	return 0;
}

//vector<int> binary(int n)
//{
//	vector<int> tmp;
//	while (n)
//	{
//		tmp.push_back((n % 2));
//		n /= 2;
//	}
//	return tmp;
//}
//
//vector<int> Obj(int n)
//{
//	vector<int> tmp;
//	while (n)
//	{
//		tmp.push_back((n % 8));
//		n /= 8;
//	}
//	return tmp;
//}
//
//bool sum(vector<int>& a, vector<int>& b)
//{
//	int sum1 = 0;
//	int sum2 = 0;
//	for (auto num : a)
//	{
//		sum1 += num;
//	}
//
//	for (auto num : b)
//	{
//		sum2 += num;
//	}
//
//	return sum1 == sum2;
//}
//int main()
//{
//	vector<int> Bin;
//	vector<int> obj;
//
//	int count = 0;
//	for (int i = 1; ; i++)
//	{
//		Bin = binary(i);
//		obj = Obj(i);
//		if (sum(Bin, obj))
//		{
//			count++;
//		}
//		if (count == 23)
//		{
//			cout << i << endl;
//			break;
//		}
//	}
//	return 0;
//}


//int main()
//{
//	vector<int> arr;
//	for (int i = 0; i < 36; i++)
//	{
//		int num = 0;
//		cin >> num;
//		arr.push_back(num);
//	}
//
//	int max = 0;
//	int index = 0;
//
//	for (int i = 0; i < 36; i++)
//	{
//		int count = 0;
//		for (int j = 2; j <= sqrt(arr[i]); j++)
//		{
//			if (arr[i] % j == 0)
//			{
//				count++;
//			}
//		}
//		if (count > max)
//		{
//			index = i;
//			max = count;
//		}
//	}
//
//	cout << arr[index] << endl;
//	return 0;
//}

////393353 901440 123481 850930 423154 240461 373746 232926 396677 486579 744860 468782 941389 777714 992588 343292 385198 876426 483857 241899 544851 647930 772403 109929 882745 372491 877710 340000 659788 658675 296521 491295 609764 718967 842000 670302
//char arr[30][41] = { "0000100010000001101010101001001100000011",
//				"0101111001111101110111100000101010011111",
//				"1000010000011101010110000000001011010100",
//				"0110101010110000000101100100000101001001",
//				"0000011010100000111111001101100010101001",
//				"0110000110000000110100000000010010100011",
//				"0100110010000110000000100010000101110000",
//				"0010011010100110001111001101100110100010",
//				"1111000111101000001110010001001011101101",
//				"0011110100011000000001101001101110100001",
//				"0000000101011000010011111001010011011100",
//				"0000100000011001000100101000111011101100",
//				"0010110000001000001010100011000010100011",
//				"0110110000100011011010011010001101011011",
//				"0000100100000001010000101100000000000010",
//				"0011001000001000000010011001100101000110",
//				"1110101000011000000100011001001100111010",
//				"0000100100111000001101001000001010010001",
//				"0100010010000110100001100000110111110101",
//				"1000001001100010011001111101011001110001",
//				"0000000010100101000000111100110010101101",
//				"0010110101001100000100000010000010110011",
//				"0000011101001001000111011000100111010100",
//				"0010001100100000011000101011000000010101",
//				"1001111010010110011010101110000000101110",
//				"0110011101000010100001000101001001100010",
//				"1101000000010010011001000100110010000101",
//				"1001100010100010000100000101111111111100",
//				"1001011010101100001000000011000110110000",
//				"0011000100011000010111101000101110110001" 
//};
//void dfs( int* count, int x, int y)
//{
//	if (arr[x][y] == '2')
//		return;
//	if ((x >= 0 && x < 30) && (y >= 0 && y < 40))
//	{
//		if (arr[x][y] == '0')
//		{
//			arr[x][y] = '2';
//			dfs(count, x - 1, y);
//			dfs(count, x, y + 1);
//			dfs(count, x + 1, y);
//			dfs(count, x, y - 1);
//			(*count)++;
//		}
//	}
//}
//int main()
//{
//	int count = 0;
//	dfs(&count,0,0);
//	cout << count;
//	return 0;
//}

//int main()
//{
//	char arr[7];
//	scanf("%s", arr);
//	int begin = 0;
//	char tmp = arr[0];
//	while (begin != 5)
//	{
//		arr[begin] = arr[begin + 1];
//		begin++;
//	}
//	arr[begin] = tmp;
//	cout << arr;
//	return 0;
//}

//int main()
//{
//	string s;
//	cin >> s;
//
//	int pos = s.find_last_of("aeiou");
//	cout << s[pos];
//	return 0;
//}

//int main()
//{
//	int n = 0;
//	cin >> n;
//	while ( n > 9)
//	{
//		int num = n;
//		int sum = 1;
//		int tmp = 0;
//		while (num)
//		{
//			tmp = num % 10;
//			if (tmp)
//			{
//				sum *= tmp;
//			}
//			num /= 10;
//		}
//		n = sum;
//		cout << sum << endl;
//	}
//	return 0;
//}

//const int m = 1e6 + 10;
//int arr[m];
//int tmp[m];
//
//int main()
//{
//	int n, k;
//	cin >> n >> k;
//	int max = 0;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> arr[i];
//	}
//
//	for (int i = 0; i < n; i++)
//	{
//		tmp[i] = arr[i] + tmp[i - 1];
//	}
//
//	for (int i = k; i <= n; i++)
//	{
//		if (tmp[i] - tmp[i - k] > max)
//		{
//			max = tmp[i] - tmp[i - k];
//		}
//	}
//	cout << max;
//	return 0;
//}

